<?php
session_start();

if(!isset($_SESSION['LoggedIn']))
	$_SESSION['LoggedIn'] = false;

	/**
	 * Hanterarklass för inloggning
	 */
	class LoginHandler
	{
		private static $m_loggedIn = "LoggedIn";
		
		/**
		 * Testar inloggningsfunktioner
		 */
		public function Test()
		{
			// Börjar med att logga ut
			$this->Logout();
			
			// Om vi fortfarande är inloggade är IsLoggedIn felimplementerad
			if($this->IsLoggedIn() == true)
			{
				echo "Enhetstestet misslyckades! Funktionen 'IsLoggedIn' är felaktigt implementerad.";
				return false;	
			}
			
			// Om inloggning med felaktiga uppgifter lyckas är Login felimplementerad
			if($this->Login("admin", "1234") == true)
			{
				echo "Enhetstestet misslyckades! Funktionen 'Login' lyckades med felaktiga parametrar.";
				return false;
			}
			
			// Om inloggning med rätt uppgifter misslyckas är Login felimplementerad
			if($this->Login("admin", "admin1234") == false)
			{
				echo "Enhetstestet misslyckades! Funktionen 'Login' misslyckades med korrekta parametrar.";
				return false;
			}
			
			// Ifall vi fortfarande inte är inloggade
			if($this->IsLoggedIn() == false)
			{
				echo "Enhetstestet misslyckades! Funktionen 'IsLoggedIn' anger fortfarande att användaren inte är inloggad.";
				return false;
			}
			
			return true;
		}
		
		/**
		 * Kontrollerar om användaren är inloggad
		 * @return Boolean
		 */
		public function IsLoggedIn()
		{
			// Om sessionsvariabeln är satt och är true
			if(isset($_SESSION[self::$m_loggedIn]) && $_SESSION[self::$m_loggedIn] == true)
				return true;
			else if(isset($_SESSION[self::$m_loggedIn]) && $_SESSION[self::$m_loggedIn] == false)
				return false;
			else
				return false;
		}
		
		/**
		 * Verifierar inloggning
		 * @return Boolean
		 * @param Username string
		 * @param Password string
		 */
		public function Login($username, $password)
		{
			switch ($username)
			{
				case "admin":
					if($password == "admin1234")
					{
						$_SESSION[self::$m_loggedIn] = true;
						return true;
					}
					break;
				case "fa222cm":
					if($password == "1dv408")
					{
						$_SESSION[self::$m_loggedIn] = true;
						return true;
					}
					break;
				/*default:
					break;*/
			}
			return false;
		}
		
		/**
		 * Loggar ut användaren
		 */
		public function Logout()
		{
			// Om sessionsvariabeln är satt och är true
			if(isset($_SESSION[self::$m_loggedIn]) && $_SESSION[self::$m_loggedIn] == true)
				unset($_SESSION[self::$m_loggedIn]);
		}
	}

?>